Transmission control protocol (TCP) is a core transmission layer protocol used in communication networks, such as the Internet. The core of TCP is defined in RFC 793, with additional features specified in other RFCs (e.g., RFC 5681 for TCP congestion control, RFC 2414 for increasing TCP's initial window, etc). TOP engines can be implemented in either software or hardware. Software implementations of TCP approach and solve challenges posed by TOP differently than hardware implementations. For example, software implementations operate on packets that have already been stored completely in memory (after being read by a network controller). In general, unlike hardware implementations of TCP, software implementations of TOP do not have to process packets of a TCP stream over successive clock cycles. Software implementations also take advantage of a large amount of available memory. Thus, software implementations of TCP can use data structures such as linked lists, which cannot be used in hardware implementations of TCP.
HW implementations of TOP, sometimes referred to TOP offload engines, can process TOP streams with low latency as compared to software implementations. A typical TCP offload engine employs ternary content address memories (TCAMs) for TCP session lookup. However, the use of TCAMs for TCP session lookup limits scalability of the TCP offload engine in terms of TCP session count.